// import { asyncRouterMap, constantRouterMap } from '@/router/index';

// //判断是否有权限访问该菜单
// function hasPermission(menus, route) {
//   if (route.name) {
//     let currMenu = getMenu(route.name, menus);
//     if (currMenu!=null) {
//       //设置菜单的标题、图标和可见性
//       if (currMenu.title != null && currMenu.title !== '') {
//         route.meta.title = currMenu.title;
//       }
//       if (currMenu.icon != null && currMenu.title !== '') {
//         route.meta.icon = currMenu.icon;
//       }
//       if(currMenu.hidden!=null){
//         route.hidden = currMenu.hidden !== 0;
//       }
//       if (currMenu.sort != null && currMenu.sort !== '') {
//         route.sort = currMenu.sort;
//       }
//       return true;
//     } else {
//       route.sort = 0;
//       if (route.hidden !== undefined && route.hidden === true) {
//         return true;
//       } else {
//         return false;
//       }
//     }
//   } else {
//     return true
//   }
// }

// //根据路由名称获取菜单
// function getMenu(name, menus) {
//   for (let i = 0; i < menus.length; i++) {
//     let menu = menus[i];
//     if (name===menu.name) {
//       return menu;
//     }
//   }
//   return null;
// }

// //对菜单进行排序
// function sortRouters(accessedRouters) {
//   for (let i = 0; i < accessedRouters.length; i++) {
//     let router = accessedRouters[i];
//     if(router.children && router.children.length > 0){
//       router.children.sort(compare("sort"));
//     }
//   }
//   accessedRouters.sort(compare("sort"));
// }

// //降序比较函数
// function compare(p){
//   return function(m,n){
//     let a = m[p];
//     let b = n[p];
//     return b - a;
//   }
// }

// const permission = {
//   state: {
//     routers: constantRouterMap,
//     addRouters: []
//   },
//   mutations: {
//     SET_ROUTERS: (state, routers) => {
//       state.addRouters = routers;
//       state.routers = constantRouterMap.concat(routers);
//     }
//   },
//   actions: {
//     GenerateRoutes({ commit }, data) {
//       return new Promise(resolve => {
//         const { menus } = data;
//         const { username } = data;
//         const accessedRouters = asyncRouterMap.filter(v => {
//           //admin帐号直接返回所有菜单
//           // if(username==='admin') return true;
//           if (hasPermission(menus, v)) {
//             if (v.children && v.children.length > 0) {
//               v.children = v.children.filter(child => {
//                 if (hasPermission(menus, child)) {
//                   return child
//                 }
//                 return false;
//               });
//               return v
//             } else {
//               return v
//             }
//           }
//           return false;
//         });
//         //对菜单进行排序
//         sortRouters(accessedRouters);
//         commit('SET_ROUTERS', accessedRouters);
//         resolve();
//       })
//     }
//   }
// };

// export default permission;

